iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0

在開發的過程中,溝通行為永遠是一件最難的事情

例如責任應該分割拉

發佈版本應該下tag拉

這些東西一但開發時程很緊就會被各種藉口給忽略掉

這時候就可以透過介面設計來規範行為

商業邏輯:將圖片跟標註輸出成特定格式

原本接口設計成

class PackFormat(abc.ABC):

    @abc.abstractmethod
    def export_pack_file():
        return NotImplemented

這時候就會發現很多人會直接把邏輯寫成一大坨塞到這個function內

下comment請同事拆function還會得到一句

「這個專案很趕,來不及了,請先合併」

所以第二版的interface就改寫成

class PackFormat(abc.ABC):

    @staticmethod
    @abc.abstractmethod
    def get_extension_name():
        return NotImplemented

    @abc.abstractmethod
    def generate_content(self, frames):
        return NotImplemented

    @abc.abstractmethod
    def format_content(self, content):
        return NotImplemented

這時就可以強迫開發者將過於複雜的責任進行分離

中心思想就是

只要符合規則的開發方式會被獎勵,不符合規則的方法會被懲罰

就會比口頭倡議有用很多


上一篇
D7 - 和我定下契約吧,淺談interface的使用
下一篇
D9 -Framework
系列文
寫個好的lib大家用吧!那些好用的lib常見的套路與想法25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言